As users start to use multiple networks for communicating, the potential for disparities in the capabilities of the networks and/or devices exist. For example, Private Branch eXchange (PBX) switching communications provide rich network centric switching capabilities whereas P2P (P2P) networks provide limited device centric capabilities. This is because P2P networks require that most of the processing and communication capabilities reside in the communication devices; many communication devices may not have dedicated communication hardware, thus resulting in degradation as the processing resources are used up. Moreover, some devices only support limited capability such as audio only, while other devices may support audio, video, and other capabilities.
Various conditions such as network failures, device failures, dropping below a predetermined Quality of Service (QoS) level, lack of processing resources in a communication device, and other conditions can cause communications to become intolerable. Accordingly, there exists a need to facilitate network switching in response to these problems. Unfortunately, existing solutions fail to take into account the current capability of a communication device when deciding to switch the communication session to a different network. Moreover, existing solutions also fail to account for alternative networks by identifying domains and service providers to which the user or endpoint belongs. Most specifically, existing solutions tend to be network centric when determining whether to switch a communication session to a different network. Failure to consider conditions other than network conditions may result in sub-optimal network selection and switching decisions.